package com.zhentao.day06;

import java.io.*;

public class FileTest {
  public static void main(String[] args) throws IOException {
    //1. 需要一个源文件 绝对路径找一个指定的文件
    File srcFile = new File ("D:/Personal/Desktop/2406A/car.jpg");
    // 2. 需要一个目标文件
    File targetFile = new File("./new_car.jpg");
    // 3. 将文件拿到程序里面来 , 拿到一个文件需要输入流
    FileInputStream fis = new FileInputStream(srcFile);
    FileOutputStream fos = new FileOutputStream(targetFile);
    // 3.1 因为文件过大, 所以需要用数组的形式来传递数据
    byte [] bs = new byte[1024];
    // 判断读取的最否还有内容,
    int len = -1 ;
    // 循环的读进数组里面
    // fis.read(bs , 0 )
    long start = System.currentTimeMillis(); // 获取当前时间的long值
    while((len = fis.read(bs,0,bs.length))!= -1 ){
      // 4. 将拿到的程序复制到目标文件里面去
      // 循环的写入文件里面 考虑到数组的最后一次, 可能不是完整的数组长度, 所以, 读取的长度 len 作为写入的长度。
      fos.write(bs,0,len);
    }
    long end = System.currentTimeMillis(); // 获取当前时间的long值
    System.out.println("复制文件花费了"+(end-start)+"毫秒");
    fos.close();
    fis.close();
    System.out.println("文件复制完成");
  }
}
